package com.cai.dao;

import com.cai.pojo.Topic;

import java.util.List;
import java.util.Map;

/**
 * @author RuoLi
 */
public interface DetailedTopicDao {


    /**
     * 获取当前页题库信息
     *
     * @param currentPage 当前页
     * @param pageSize    数据量
     * @return Json 格式
     */
    String getDetailedTopicData(int currentPage, int pageSize);

    /**
     * 删除指定题库信息根据题目id
     *
     * @param detailedTopicId 题目id
     * @return -1失败 1成功
     */
    int deleteDetailedTopic(int detailedTopicId);

    /**
     * 读取读取题库分页信息
     *
     * @param currentPage 当前页
     * @param pageSize    数据量
     * @return Json 格式
     */
    String getDetailedTopicPageData(int currentPage, int pageSize);


    /**
     * 根据题目类型获取分页数据
     *
     * @param pageSize 数据量
     * @param topicType 题目类型
     * @return json
     */
    String getDetailedTopicChoseTopicType(int pageSize,String topicType);

    /**
     * 用户端题库展示信息
     * @param currentPage 当前页
     * @param pageSize 数据量
     * @return json格式
     */
    String getDetailedTopicInfoUserClient(int currentPage,int pageSize);
    /**
     * 读取题库题目数量
     *
     * @return -1 读取失败
     */
    int getCountDetailedTopicTotalSizeData();

    /**
     *  读取单行信息 根据题目编号
     * @param detailedTopicId 题目详细编号
     * @return json 格式
     */
    String getDetailedTopicData(int detailedTopicId);

    /**
     * 修改单行信息 根据题目编号
     * @param map map对象
     * @return -1失败 1 成功
     */
    int updateDetailedTopicData(Map<String,String[]> map);

    /**
     * 添加单行数据
     * @param map map对象
     * @return -1 失败 1 成功
     */
    int insertDetailedTopicData(Map<String,String[]> map);

    /**
     * 添加单行数据
     * @param map map对象
     * @return -1 失败 1成功
     */
    int insertTopicData(Map<String,String[]> map);

    /**
     * 新增题目后获取topicId、detailedTopicId
     * @return json
     */
    String getAfterInsertTopicId();

    /**
     * 获取知识点标签
     * @return json格式
     */
    String getKnowledgePointTabsInfo();

    /**
     * 获取用户界面题目详细信息
     * @param detailedTopicId 详细题目编号
     * @return json
     */
    String getUserDetailedTopicInfo(int detailedTopicId);

    /**
     * 获取随机一组题目 5个
     * @return json
     */
    String getRandomTopicCount5();

    /**
     * 获取用户界面题目答案
     * @param detailedTopicId 详细题目编号
     * @return json
     */
    String getUserDetailedTopicAnswer(int detailedTopicId);

    /**
     * 验证答案是否正确
     * @param detailedTopicId 题目id
     * @param answer 答案
     * @return 1 正确 0 错误
     */
    int checkUserDetailedTopicAnswer(int detailedTopicId, String answer);

    /**
     * 根据题目类型展示不同题目信息
     * @param currentPage 当前页
     * @param pageSize 数据量
     * @param topicType 题目类型
     * @return json
     */
    String getDetailedTopicInfoUserClientChangeTopicType(String topicType,int currentPage,int pageSize);

    /**
     * 获取用户选择栏中的数据
     * @param selectData 选择栏
     * @return json
     */
    String getUserSelectData(String selectData);

    /**
     * 匹配选择框知识点内容
     * @param chapterName 章节
     * @return json
     */
    String getMatchKnowledgePoint(String chapterName);

    /**
     * 根据题目编号获取题目信息
     * @param detailedTopicId 题目编号
     * @return json
     */
    String getTopicFromDetailedTopicId(int detailedTopicId);

}
